//Wrapper for EE Lighttypes
#pragma once
#include "stdafx.h"

namespace EsenthelNet
{
	public ref class LightDir {
	internal:
		EE::LightDir* light;
	public:
		LightDir() {
			light = new EE::LightDir();
		}
		LightDir(EsenthelNet::Vec^ dir) {
			light = new EE::LightDir(*dir->vec);
		}
		LightDir(EsenthelNet::Vec^ dir, EsenthelNet::Vec^ color) {
			light = new EE::LightDir(*dir->vec, *color->vec);
		}

		LightDir(EsenthelNet::Vec^ dir, EsenthelNet::Vec^ color, float volAmount) {
			light = new EE::LightDir(*dir->vec, *color->vec, volAmount);
		}

		LightDir(EsenthelNet::Vec^ dir, EsenthelNet::Vec^ color, float volAmount, float volExponent) {
			light = new EE::LightDir(*dir->vec, *color->vec, volAmount, volExponent);
		}

		LightDir(EsenthelNet::Vec^ dir, EsenthelNet::Vec^ color, float volAmount, float volExponent, float volSteam) {
			light = new EE::LightDir(*dir->vec, *color->vec, volAmount, volExponent, volSteam);
		}

		Prop(float, VolAmount, light->vol)	
		Prop(float, VolExponent, light->vol_exponent)	
		Prop(float, VolSteam, light->vol_steam)	

		PropVec(Dir, light->dir)
		PropVec(Color, light->color)

		void Add(bool shadow) {
			light->add(shadow);
		}
		void Add() {
			light->add();
		}

		void Set(){
			light->set();
		}
	};
}